package com.itheima.a13waitandnotify;

public class Foodie extends Thread {

    /*
    *     1.循环
    *     2.同步代码块
    *     3.判断共享数据是否到了末尾（到了本尾）
    *     4.判断共享数据是否到了末尾（没有到末尾）
    *
    * */

    @Override
    public void run() {
        while (true){
            synchronized (Desk.lock){
                if(Desk.count == 0){
                    break;
                }else {
                    //先去判断桌子是否有面条
                    //没有等待
                    //有就吃
                    //吃完唤醒厨师继续做
                    //吃的总数-1
                    //修改桌子的状态
                    if(Desk.foodflag == 0){
                        //没有就等待
                        try {
                            Desk.lock.wait();//让当前线程跟锁绑定
                        } catch (InterruptedException e) {
                            throw new RuntimeException(e);
                        }
                    }else{
                        //吃的总数-1
                        Desk.count--;
                        //有就吃
                        System.out.println("吃面,还能吃"+Desk.count+"碗面");
                        //吃完唤醒厨师继续做
                        Desk.lock.notifyAll();
                        //修改桌子的状态
                        Desk.foodflag = 0;
                    }
                }
            }
        }

    }
}
